#ifndef Trans2_H_
#define Trans2_H_
#include "../../SAMA_Function.h"

enum ChangeAM
{
	Hold,
	Change_MAN
};

enum Trans2_WorkMode
{
	Trans2_AUTO,
	Trans2_PV1_Out,
	Trans2_PV2_Out
};


enum Trans2_OutMode
{
	Average,
	Max,
	Min
};

typedef struct {
	Trans2_WorkMode Work_Mode;
	Trans2_OutMode Out_Mode;

	float Alert_Range;
	float Alert_Dead;
	float Safe_OutValue;
}Trans2_Par_t;

typedef struct {
	bool AIfLink[2];					//< 记录模拟量输入的有效测点
}Trans2_Sta_t;

struct Trans2_T
{
	Model_Base_t Base;		//< 模块基本参数结构体
	Trans2_Par_t Par;		//< 模块可调参数结构体
	Trans2_Sta_t Sta;		//< 模块运算中间参数结构体
};


extern Trans2_T* Trans2_t;

bool CALCU_SAMA(Trans2)(Model_Base_t* arg, float dt, bool* DI, bool* DO, float* AI, float* AO);		//< SAMA运算函数
int BC_PARA(Trans2)(Model_Base_t* arg, void** Data);													//< 广播SAMA参数变量函数（无参数需要广播的模块直接将BCPara函数设置为NULL即可）
int BAK_STA(Trans2)(Model_Base_t* arg, void** Data);													//< 备份SAMA运算中间参数
int ANA_STA(Trans2)(Model_Base_t* arg, void** Data);													//< 解析备份的SAMA运算中间参数
int CHANGE_PAR(Trans2)(Model_Base_t* arg, void** Data);												//< 在线修改模块参数函数
void INIT_STAPAR(Trans2)(Model_Base_t* arg);															//< 初始化模块运算中间参数


#endif
